//该文件是对axios的二次封装，目的是：统一给所有请求加上前缀
import axios from 'axios'
//引入nprogress
import nprogress from 'nprogress';
//引入nprogress样式
import 'nprogress/nprogress.css' 
import {getUserTempId,getToken} from '@/utils/auth'


// axios.defaults.baseURL = 'https://api.uixsj.cn' 默认路由的url
//创建ajax 通过axios.create
const ajax = axios.create({
	baseURL:'/api',
	timeout:2000//超时时间
})

//请求拦截器
ajax.interceptors.request.use((config)=>{
	nprogress.start()//样式启动
	//请求头中携带用户临时标识
	config.headers.userTempId = getUserTempId()	
	//获取token
	const token = getToken()
	//token放在请求头
	if(token) config.headers.token = token
	return config; //必须返回config 配置对象
})
//响应拦截器
ajax.interceptors.response.use(
	//响应成功的回调 (axios的底层判断http的状态码为2开头)
	response => {
		nprogress.done() //样式结束
		
		return response.data //返回响应数据
	},
	//响应失败的回调(状态码不是2开头)
	error => {
		// console.log('失败了', error);
		console.log(error) //输出错误
		//中断promise链
		return new Promise(() => {})
	}
)
export default ajax; //默认暴露